package com.fuchuang.seckillsystem.service;

import com.fuchuang.seckillsystem.dto.ActivityQuery;
import com.fuchuang.seckillsystem.dto.PageQuery;
import com.fuchuang.seckillsystem.entity.Activity;
import com.fuchuang.seckillsystem.entity.Goods;

import java.util.List;
import java.util.Map;

public interface IActivityService {
    
    /**
     * 添加活动
     *
     * @param activity
     */
    void insertActivity(Activity activity);
    
    /**
     * 删除活动
     *
     * @param activityId 活动id
     */
    void deleteActivity(Integer activityId);
    
    /**
     * 更改秒杀活动信息
     *
     * @param activity 活动信息
     */
    void updateActivity(Activity activity);
    
    /**
     * 查询所有未进行活动
     */
    Map<String, Object> selectAllActivity(PageQuery pageQuery);
    
    Map<String, Object> selectActivityByDate(ActivityQuery activityQuery);
    
    /**
     * 通过id查询一个秒杀活动
     */
    Activity selectActivityById(Integer activityId);
    
    /**
     * 通过id查询一个秒杀活动的秒杀商品
     */
    List<Goods> selectGoodsByActivityId(Integer activityId);
    
    /**
     * 向某一个活动中添加秒杀商品
     */
    void insertActivityGoods(Integer activityId, List<Integer> goodsIds);
    
    /**
     * 向某一个活动中删除秒杀商品
     */
    void deleteActivityGoods(Integer activityId, List<Integer> goodsIds);
    
    /**
     * 查询包含该商品的秒杀活动
     */
    List<Activity> selectActivityByGoodsId(Integer goodsId);
}
